package com.schoolhelper.social.mapper;

import com.schoolhelper.social.domain.Message;
import org.apache.ibatis.annotations.*;
import java.util.List;
import java.util.Map;

@Mapper
public interface MessageMapper {
    
    // 发送消息
    int insertMessage(Message message);
    
    // 获取两个用户之间的聊天记录
    List<Message> getChatHistory(@Param("userId1") Long userId1, 
                                @Param("userId2") Long userId2,
                                @Param("limit") int limit,
                                @Param("offset") int offset);
    
    // 获取用户的聊天列表
    List<Map<String, Object>> getChatList(@Param("userId") Long userId);
    
    // 标记消息为已读
    int markMessagesAsRead(@Param("senderId") Long senderId, @Param("receiverId") Long receiverId);
    
    // 获取未读消息数量
    int getUnreadCount(@Param("userId") Long userId);
    
    // 获取未读消息详情（按发送者分组）
    List<Map<String, Object>> getUnreadMessageDetails(@Param("userId") Long userId);
    
    // 获取两个用户之间的消息数量
    int getMessageCountBetweenUsers(@Param("userId1") Long userId1, @Param("userId2") Long userId2);
    
    // 删除消息
    int deleteMessage(@Param("messageId") Long messageId);
    
    // 获取与特定用户的未读消息数量
    int getUnreadMessageCountFromUser(@Param("receiverId") Long receiverId, @Param("senderId") Long senderId);
}